Video communications have become increasingly popular as a result of widespread deployment of broadband networks, advancements in video compression technologies, and increased availability of low-cost tools for implementing web-based video communications. One such tool is the web real-time communication (WebRTC) standard, which is a set of protocols and application programming interfaces (APIs) defined by the World Wide Web Consortium (W3C) and the Internet Engineering Task Force (IETF). The WebRTC standard generally supports browser-to-browser applications such as voice calling, video chat, and peer-to-peer (P2P) file sharing applications, while avoiding the need for plugins to connect video communications endpoints.
In recent years, the WebRTC standard has been employed in real-time video applications, such as multi-party video conferencing applications. The selective forwarding unit (SFU) model has also been employed to provide a low-cost solution to deployment of multi-party WebRTC videoconferences. In the SFU model, multiple participant devices in a WebRTC videoconference typically send one or more video streams including real-time transport protocol (RTP) video packets to a central server, which generally functions as a packet data router. The central server receives the video streams from the respective participant devices, and selectively forwards (or routes) a plurality of video streams to each participant device. The participant devices can also send simultaneous broadcast (or simulcast) video streams including at least a high quality video stream and a low quality video stream to the central server, which selectively forwards (or routes) the high quality video stream and/or the low quality video steam to a respective participant device based on one or more factors such as system load, network bandwidth, available bit rate, etc.
The increased use of mobile devices such as smartphones and tablet computers has posed particular challenges to multi-party video communications, due primarily to the heterogeneous natures of the display resolutions of mobile devices and/or the communications networks in which such mobile devices operate. For example, some mobile devices with displays having reduced resolutions may require good quality, small video streams (e.g., video streams with frame sizes of 360p) to obtain an optimal quality of experience (QoE) for viewing video, while other mobile devices with displays having increased resolutions may require high quality, large video streams (e.g., video streams with frame sizes of 720p or 1080p) to obtain such an optimal QoE. Further, some mobile devices may operate in communications networks with reduced available bandwidths (e.g., available bandwidths of 500 kbits/sec), while other mobile devices may operate in communications networks with increased available bandwidths (e.g., available bandwidths of 1 Mbits/sec).
However, a central server hosting a videoconference (such as a WebRTC videoconference) based on the SFU model is typically incapable of providing all participant devices with video streams that completely satisfy the display criteria (e.g., display resolution, available network bandwidth) of the respective participant devices. In some cases, the central server may request one or more of the participant devices to reduce a video encoding bitrate in accordance with the display criteria of a participant device having the lowest available network bandwidth, resulting in a lower QoE for other participant devices that may be capable of handling higher video encoding bitrates. In other cases, the central server may stop sending video streams to the participant device having the lowest available network bandwidth, enabling it to provide high quality, large video streams to other participant devices that may have higher available network bandwidths. Each case, however, typically results in suboptimal QoE for some of the devices participating in the videoconference.